package org.example.base;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;

//统一异常处理
@ControllerAdvice
public class ExceptionAdvice {

    //使用@ExceptionHandler注解，可以设置要捕获的Controller请求映射方法抛出的异常类
    @ExceptionHandler(Exception.class)
    //方法的写法，和Controller请求映射方法的写法类似
    //如果返回json就使用@ResponseBody，如果返回网页，就返回资源路径的字符串
    @ResponseBody
    public Object handle(Exception e,
                         HttpServletResponse resp){//方法参数，可以写request/response对象，及捕获的异常
        Map<String, Object> map = new HashMap<>();
        map.put("ok", false);
        map.put("msg", "后端报错了");
        return map;
    }
}